package com.java.module.user.mapper;

import java.util.List;

import com.java.module.user.domain.MessageAssign;
import com.java.module.user.domain.dto.MessageAssignDTO;
import com.java.module.user.domain.vo.MessageAssignVO;

/**
 * 基础：用户消息Mapper接口
 *
 * @author Administrator
 * @date 2021-03-24
 */
public interface MessageAssignMapper {

    /**
     * 查询基础：用户消息
     *
     * @param maid 基础：用户消息ID
     * @return 基础：用户消息
     */
    public MessageAssign selectMessageAssignById(Long maid);

    /**
     * 查询基础：用户消息列表
     *
     * @param messageAssign 基础：用户消息
     * @return 基础：用户消息集合
     */
    public List<MessageAssign> selectMessageAssignList(MessageAssign messageAssign);

    /**
     * 查询单个基础：用户消息
     *
     * @param messageAssign 基础：用户消息
     * @return 基础：用户消息
     */
    public MessageAssign selectMessageAssign(MessageAssign messageAssign);

    /**
     * 新增基础：用户消息
     *
     * @param messageAssign 基础：用户消息
     * @return 结果
     */
    public int insertMessageAssign(MessageAssign messageAssign);

    /**
     * 修改基础：用户消息
     *
     * @param messageAssign 基础：用户消息
     * @return 结果
     */
    public int updateMessageAssign(MessageAssign messageAssign);

    /**
     * 删除基础：用户消息
     *
     * @param maid 基础：用户消息ID
     * @return 结果
     */
    public int deleteMessageAssignById(Long maid);

    /**
     * 批量删除基础：用户消息
     *
     * @param maids 需要删除的数据ID
     * @return 结果
     */
    public int deleteMessageAssignByIds(Long[] maids);

    /**
     * 获取用户信息列表
     *
     * @param messageAssign 用户信息
     * @return
     */
    List<MessageAssignVO> getMessage(MessageAssignDTO messageAssign);

    /**
     * 用户未读数量
     *
     * @param uid
     * @return
     */
    Long queryUserUnRead(Long uid);

    /**
     * 消息批量分发
     * 
     * @param messageAssignList
     * @return int
     */
    public int insertMessageAssignByUids(List<MessageAssign> messageAssignList);

}